home *** CD-ROM | disk | FTP | other *** search
- ; --------------------------------------------------------------------------
- ;
- ; CADENCE5.LSP Grid Line Work Display.
- ;
- ; Written by: W.Kramer
- ;
- ; --------------------------------------------------------------------------
- (defun inlist (xyprmpt exp1)
- ; XYPRMPT is string, EXP1 is form list to update variable PS.
- (setq v (getstring (strcat "\n" xyprmpt " Constant or Variable (C or V):")))
- (setq lst nil)
- (if (or (= v "C") (= v "c"))
- (progn
- (setq v (getdist p1 (strcat "\n" xyprmpt " Constant spacing:")))
- (setq n (getint "\nNumber of Cells:"))
- (repeat n (setq lst (cons v lst))))
- (progn
- (setq ps p1)
- (setq v (getdist ps (strcat "\n" xyprmpt " Variable spacing:")))
- (while (boundp 'v)
- (setq ps (eval exp1))
- (setq lst (cons v lst))
- (setq v (getdist ps (strcat "\n" xyprmpt " Spacing:"))))))
- (reverse lst))
- ;
- (defun outlines (lst exp1 exp2)
- ; LST is list to work on, EXP1 is form list for line output.
- ; EXP2 is form list for update of line starting point.
- (setq ps p1 ex 0)
- (while (= ex 0) ; --- Repeat until 'lst is empty.
- (command "LINE" ps (eval exp1) "")
- (if (boundp 'lst)
- (progn
- (setq ps (eval exp2))
- (setq lst (cdr lst)))
- (setq ex 1))))
- ;
- (defun c:gridlines ()
- (setq p1 (getpoint "\nLocate Lower Left corner of grid:"))
- (if (null p1)
- (prompt "\nInvalid entry")
- (progn ; --- Continue input section, ask for spacings.
- (setvar "CMDECHO" 0) ; --- Disable AutoCAD command display.
- (command "ORTHO" "ON") ; --- Switch Orthographic mode on.
- (setq xlst (inlist "X-Axis" '(list (+ (car ps) v) (cadr ps))))
- (setq ylst (inlist "Y-Axis" '(list (car ps) (+ (cadr ps) v))))
- ; --- Process section.
- (setq dx 0.0 dy 0.0)
- (setq p2 (list
- (+ (car p1)
- (foreach xx xlst (setq dx (+ dx xx))))
- (+ (cadr p1)
- (foreach xx ylst (setq dy (+ dy xx))))))
- ; --- Output section.
- (outlines xlst '(list (car ps) (cadr p2))
- '(list (+ (car ps) (car lst)) (cadr ps)))
- (outlines ylst '(list (car p2) (cadr ps))
- '(list (car ps) (+ (car lst) (cadr ps)))))))